package com.qf.cosmetology.controller;

import com.qf.cosmetology.entity.Pic;
import com.qf.cosmetology.result.ResponseCode;
import com.qf.cosmetology.result.ResponseData;
import com.qf.cosmetology.service.PicService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * (Pic)表控制层
 *
 * @author makejava
 * @since 2021-06-22 11:07:14
 *
 * get post delete put patch请求（前端向后端发送请求）
 * http：//localhost:8080/（这是根路径）  pic（标识符）/selectOne（在方法体上面映射）?id=1 （key-value传值方式）
 * 控制层拦截，RequestMapping实现（层层向下拦截）
 * servlet实现拦截技术
 * @Controller：表示当前层由springMVC管控，之后通过@RequestMapping拦截具体的请求
 *
 *
 * resetful风格接口设计  ---它是一个接口设计风范
 *  （原始模式）http://localhost:8080/pic/selectOne?id=1
 *  http://localhost:8080/pics/1
 *  http://localhost:8080/pics/1/csl/1
 * 1.尽量不使用动词
 * 2.一般满足get请求，当参数超过三个后，将数据放在请求体中
 * 3.当数据需要放在请求中的时候，可以采用post delete put patch
 *      http:localhost:8080/pics    {id:1,name:"csl"}  前端使用ajax的是有声明请求方式 type:post
 *      http:localhost:8080/pics    {id:1,name:"csl"}  前端使用ajax的是有声明请求方式 type:put
 *
 * 请求
 *
 * 如何接受请求中的参数
 * http://localhost:8080/pics/1
 *
 *
 *
 */
@Api("PicApi")//对API的描述
@RestController//=@controller+@responseBody 1.表示Controller标志2.全部返回json数据格式
@RequestMapping("pics")//请求路径映射

//控制层的作用：
//拦截请求
//接收请求参数
//调用服务层服务--需要使用服务层对象里面的方法
    //获取服务层对象
    //通过服务层对象调用对应的函数
//接收服务层返回的数据并且将数据返回给前端
//提高可用性和降低耦合性


public class PicController {
    @Autowired
    private PicService picService;

    @ApiOperation(value = "queryByType",notes = "通过图片类型获取对应的轮播图片或者是导航图片")
    @ApiImplicitParam(name = "type",value = "图片类型")
    @GetMapping("/{type}")
    public ResponseData queryType(@PathVariable String type){
        return picService.queryByType(type);
    }

    @GetMapping("/v1/{id}")
    public ResponseData queryById(@PathVariable Integer id){

        return new ResponseData(ResponseCode.SUCCESS,picService.queryById(id));
    }

}
